#ifndef	PIZZA_HPP__
# define	PIZZA_HPP__

#include	<list>

#include	"Kitchen.hpp"

enum	TypePizza
  {
    REGINA	= 1,
    MARGARITA	= 2,
    AMERICAINE	= 4,
    FANTASIA  = 8,
    UNKNOW	= 0
  };

enum	TaillePizza
  {
    S		= 1,
    M		= 2,
    L		= 4,
    XL		= 8,
    XXL		= 16
  };

class	Pizza
{
public:
  typedef	std::list<e_Ingredient>	Ingredients;

public:
  Pizza(TypePizza type = UNKNOW, TaillePizza size = S);
  Pizza(Pizza const&);
  Pizza	&operator=(Pizza const&);
  ~Pizza();

  TypePizza	getType(void) const;
  TaillePizza	getTaille(void) const;
  void		setType(TypePizza const& type);
  void		setTaille(TaillePizza const& size);

protected:
  virtual void	setIngredients();
  void		insert(e_Ingredient ingre);

protected:
  TypePizza	_type;
  TaillePizza	_size;
  Ingredients	_ingre;
};

#endif	/* !PIZZA_HPP__ */
